<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>

        function biaobai(god) {
            return new Promise((resolve, reject) => {
                console.log(`邓哥向${god}发出了表白短信`);
                setTimeout(() => {
                    if (Math.random() < 0.3) {
                        resolve(true)
                    } else {
                        resolve(false);
                    }
                }, 1000);
            })
        }

        /*
            邓哥心中有三个女神
            有一天，邓哥决定向第一个女神表白，如果女神拒绝，则向第二个女神表白，直到所有的女神都拒绝，或有一个女神同意为止
        */



        // 采用立即执行函数，只是创建一个async函数为await提供使用的环境
        (async () => {
            const gods = ["女神1", "女神2", "女神3", "女神4", "女神5"];

            for(let i = 0; i < gods.length; i ++) {

                // 当前循环等待的Promise没有resolve，下一次循环不运行
                const result = await biaobai(gods[i]); 

                if(result) {
                    console.log(`${gods[i]}同意了邓哥的求爱，邓哥好开心！`);
                    break;
                }else{
                    console.log(`${gods[i]}拒绝了邓哥的求爱`);
                }
            }
        })();




    </script>
</body>

</html>